ここでは、ユーザー管理の方法を説明していきたいと思います。
ユーザー管理といっても、自分だけの自鯖を建ている方には、
rootと、自分用のrootに移行出来るアカウントさえあれば問題無いわけですから
ユーザー管理の必要はあまり無いかも知れません。
しかし、インストールするソフトウェアによっては、
そのソフトウェア独自のアカウントを用意しないといけない場合もあります。
「/stand/sysinstall」からもユーザーの追加が可能な事は知っていると思いますが、
これを使用しない、もっとも一般的な方法を説明していきたいと思います。
それと、ユーザーには所属する「グループ」というものも存在します。
同じグループに所属するユーザーであれば、パーミッションの設定によっては
他人のファイルであっても読み書きすることが可能になります。
自鯖であれば、ユーザーを「グループ」で管理する事はあまりないと思いますが、
システムが用意したグループに所属することによって、
本来rootしか使用不可能だったコマンドの一部が使用可能になります。
それに、アカウントと同様、ソフトウェアによっては
独自のグループを追加しないといけない場合もあります。
このため、ここではグループの設定も合わせて説明しておきます。
公式HPにも「アカウント情報の変更」という、非常に分かりやすいページがあります。
合わせて読んでいただければ、より一層勉強になると思います。
なお、少し特殊ですが、Telnet等で接続出来ないようにする設定も合わせて説明しておきます。
こう入力すると、対話的なユーザーアカウントの追加が開始されます。
/etc/adduser.conf: No such file or directory
Use option ``-silent'' if you don't want
to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Usernames must match regular expression:
[^[a-z0-9_][a-z0-9_-]*$]:
Enter your default shell: csh date no sh
tcsh [sh]: tcsh
Your default shell is: tcsh -> /bin/tcsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message
no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your configuration to /etc/adduser.conf?
(y/n) [y]: y
Ok, let's go.
Don't worry about mistakes. I will give you
the chance later to correct any input. |
実際に入力した所には下線を引きましたが、
ここでは、これからユーザーを追加したときに使用されるディフォルトの設定を決めました。
この設定内容は「/etc/useradd.conf」に記録されます。
これは、「adduser」を最初に実行した時のみ聞いてきます。
このディフォルト設定をやり直したいのであれば、「adduser
-v」と入力します。
次からが実際のユーザー追加です。
一旦ディフォルト設定を終えると、次からはこの画面が開きます。
Enter username [^[a-z0-9_][a-z0-9_-]*$]:
hiiro
Enter full name []: Hiiro Sou -adduer test
Enter shell csh date no sh tcsh [tcsh]:
Enter home directory (full path) [/home/hiiro]:
Uid [1000]:
Enter login class: default []:
Login group hiiro [hiiro]: user
Login group is ``user''. Invite hiiro into
other groups: guest no
[no]:
Enter password []: *******
Enter password again []: *******
Name: hiiro
Password: ****
Fullname: Hiiro Sou -adduer test
Uid: 1000
Gid: 1003 (user)
Class:
Groups: user
HOME: /home/hiiro
Shell: /bin/tcsh
OK? (y/n) [y]: |
下線部が実際に入力したところです。
項目の意味を順に説明していきます。
「Enter username」で、まず実際に追加したいユーザー名を入力します。
当然これを設定しないことには先に進めません。
「Enter full name」では、そのユーザーのフルネームを入力します。
でも、ほとんど使用されないので、面倒であれば特に何も入力しなくてもいいです。
「Enter shell」では、使用するシェルを指定します。
ここは上で設定したものがディフォルトで設定されるので、何も入力しないままエンターで進みます。
「Enter home directory」も、ディフォルトのままで問題ないのでエンターで進みます。
「Uid」とは、ユーザーの通し番号のようなものです。
「adduser」を使用した場合、「1000」以降の空いている番号を自動的に設定してくれます。
インストール時に作成したユーザーは何故か「1001」番なので、「1000」が指定されています。
ここは衝突しないようにFreeBSDが付けてくれますので、任せておきましょう。
「Enter login class」は基本的にいじくらないので、エンターで進みます。
「Login group ユーザー名」では、自動的にユーザー名と同じグループを作成してくれますが、
ユーザー用グループを用意しているので、「user」と入力しました。
しかし、同じグループに所属するユーザーはパーミッションの設定によっては
同じグループの他人のディレクトリが見れますので、
基本的にはユーザー名をそのままグループとして登録するべきかも知れません。
次の「Login group is ``user''. Invite…(略)」はちょっと特殊です。
ユーザーは自身のメイングループの他にも複数のグループに所属可能なので、
他に所属したいグループがある場合は、ここに入力します。
新規ユーザーを「wheel」にも所属させたい場合は、ここに書くべきでしょう。あまりお勧め出来ませんが。
「Enter password」に関しては見ての通りです。
「Enter password again」にて、間違いが無いかどうか再入力します。
ここまで終えると、設定した項目の確認が表示されます。
OK? (y/n) [y]: y
Added user ``hiiro''
Copy files from /usr/share/skel to /home/hiiro
Add another user? (y/n) [y]: n
Goodbye!
Server# |
下線が実際に入力したところです。
「OK?」の問いに「y」と答えると、設定通りにユーザーを追加します。
この時ユーザー専用のディレクトリを作成して、初期設定ファイルをコピーします。
最後にまだユーザーを追加するかどうか聞いてくるので、この場合は「n」と入力して終了しました。
これで「adduser」を使用したユーザーの追加は完了です。
昔のFreeBSDやLinuxでは「addgroup」というコマンドで追加可能ですが、
Freebsdの最近のバージョンにこういったコマンドは存在していないようです。
その代わり、「pw groupadd」というコマンドを使用します。
ここでは、一般ユーザーに割り当てようと考えている「user」グループを作成してみます。
こう入力するだけでグループ追加は完了です。
では、グループの情報は一体どこに保存されているのか?
サーバーに存在するグループ一覧のデータは「/etc/group」にあります。
一度中身を見てみましょう。
Server# more /etc/group
# $FreeBSD: src/etc/group,v 1.19.2.3 2002/06/30
17:57:17 des Exp $
#
wheel:*:0:root
daemon:*:1:daemon
kmem:*:2:root
sys:*:3:root
tty:*:4:root
operator:*:5:root
(略)
user:*:1003:
Server # |
おそらく一画面では収まらないと思いますが、
きちんと最後に作成されたグループがあることを確認しました。
(一旦adduserを実行すると、番号順にソートされるので、少し上に行くかも知れませんが…)
実は、このファイルに書式に合わせて書き加えるだけでグループは追加出来ます。
しかし、直接編集するのはあまりお勧め出来ないので、追加コマンドを使用してください。
なお、作成したグループを削除するには
と入力します。
この例では「user」というグループを削除しました。
あるユーザーを新たに他のグループにも所属させたくなった時、
エディタで「/etc/group」を開き、そのユーザーを目的のグループに追加するだけで
ユーザーをそのグループに所属させることが可能です。
ここでは、「hiiro」というユーザーに「shutdown」を実行させたいと思ったため、
「shutdown」が実行可能な「operator」グループに追加してみたいと思います。
として、エディタでファイルを開きます。
# $FreeBSD: src/etc/group,v 1.19.2.3 2002/06/30
17:57:17 des Exp $
#
wheel:*:0:root
daemon:*:1:daemon
kmem:*:2:root
sys:*:3:root
tty:*:4:root
operator:*:5:root,hiiro
(略) |
下線を引きましたが、「,(カンマ)」で区切って、所属させたいユーザーを追加します。
その後保存して終了です。
これで、「hiiro」アカウントでも、「shutdown」を実行出来るようになります。
「su」でrootに移行可能にしたいのであれば、「wheel」の後ろに追加したら良いという事になります。
こう入力すると、ユーザーアカウントの削除が開始されます。
Server# rmuser
Enter login name for user to remove: hiiro
Matching password entry:
hiiro:(略):1000:1003::0:0:Hiiro Sou -adduer
test:/home/hiiro:/bin/tcsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/hiiro)?
y
Updating password file, updating databases,
done.
Updating group file: (removing
group hiiro
-- personal group is empty) done.
Removing user's home directory (/home/hiiro):
done.
Removing files belonging to hiiro from /tmp:
done.
Removing files belonging to hiiro from /var/tmp:
done.
Removing files belonging to hiiro from /var/tmp/vi.recover:
done.
Server# |
例によって下線部が実際に入力した部分です。
まず最初に削除したいユーザー名を入力します。
そのユーザー名が存在するか確認をして、存在した場合
次に本当に削除していいのか確認してきますので「y」で進みます。
そしてホームディレクトリを削除するかどうかを聞いてきます。残したい理由があるならば「n」ですが、
削除してしまってもいいのならば「y」です。
そして、グループを管理しているファイル「/etc/group」をチェックして、
削除しようとしているユーザーが存在した場合、それを削除。
他にもユーザーのみが所属しているグループがあった場合、それも削除してくれます。
この「/etc/passwd」ファイルは、基本的に全ユーザーが見れるように設定されています。
これで、このサーバーにどんなユーザーが存在するのか確認することが可能です。
しかし、パスワードの欄は「*」で、見れないように設定されています。
あと、rootユーザーでこのファイルを編集しても、実際に変更は反映されません。
実際に変更したいのであれば、rootにて「vipw」を実行します。
これで、サーバーが管理している全ユーザーアカウントの編集が出来ます、
しかし、このコマンドは、ちょっと上級者向けで、実はあまりお勧め出来ません。
これでしか変更出来ないこともあるのですが、それはまたの機会に…。
どんなユーザーが存在するかは「/etc/passwd」を見るだけに留めておいた方がいいと思われます。
これは何時でも設定できるのですが、2つの方法を説明しておきます。
「adduer」の時に設定する場合:
これは3つ目の項目に使用シェルを指定する項目がありましたが、この時、
Enter shell csh date no sh tcsh [tcsh]: /sbin/nologin |
と指定しておけば、あらゆるログインは許可されなくなります。
システムが使用する特殊なユーザー等に使用すればいいと思います。
追加するユーザーすべてこの設定にしておきたいのであれば、「adduser
-v」を実行して、
初期設定の際にシェルを「/sbin/nologin」としておいてもいいかも知れません。
コマンドラインから設定する場合:
ユーザー情報を変更する「chsh」もしくは「chpass」を使用します。どちらもほぼ同じプログラムです。
と、引数として変更したいユーザー名を指定します。
引数を指定しないと自分自身になりますので、注意してください。
#Changing user database information for hiiro.
Login: hiiro
Password:
Uid [#]: 1000
Gid [# or name]: 1000
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/hiiro
Shell: /bin/tcsh → /sbin/nologin
Full Name:
Office Location:
Office Phone:
Home Phone:
Other information: |
下線の部分を「/sbin/nologin」と変更して保存します。
なお、ここで自分の使用シェルを変更することも可能です。合わせて憶えておいてください。
[一つ上に戻る] |